//
//  NSString+Utils.h
//  Common
//
//  Created by holyjoy on 15/6/21.
//  Copyright (c) 2015年 holyjoy. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface NSString (Utils)

- (NSString*)encodeAsURIComponent;
- (NSString*)escapeHTML;
- (NSString*)unescapeHTML;

/**
 *  文本本地化
 *
 *  @param key 本地文本key值
 *
 *  @return 本地化文本
 */
+ (NSString*)localizedString:(NSString*)key;

/**
 *  base64加密
 *
 *  @param str 加密文字
 *
 *  @return 已加密文字
 */
+ (NSString*)base64encode:(NSString*)str;

/**
 *  格式化时间文本
 *
 *  @param timeInterval 传入时间戳
 *  @param formatter    时间格式
 *
 *  @return 时间最终内容
 */
+ (NSString *)dateWithTimeInterval:(NSTimeInterval)timeInterval formatter:(NSString *)formatter;
/**
 *  格式化时间文本
 *
 *  @param date      date
 *  @param formatter 时间文本格式
 *
 *  @return 时间最终内容
 */
+ (NSString *)dateWithDate:(NSDate *)date formatter:(NSString *)formatter;

- (NSString *)flattenHTMLWithImgStyle;
- (NSString *)flattenHTMLWhiteSpace:(BOOL)trim;
- (NSString *)stringByDecodingHTMLEntitiesInString;
- (NSString *)stringByStrippingHTML;
- (NSString *)stringByStrippingSpace;
- (NSString *)flattenImgHTMLWithWihtString:(NSString *)str;

//base64相关
+ (NSString*)encodeBase64String:(NSString *)input;
+ (NSString*)decodeBase64String:(NSString *)input;
+ (NSString*)encodeBase64Data:(NSData *)data;
+ (NSString*)decodeBase64Data:(NSData *)data;

+ (NSString*)guid;
/**
 * 编写正编写正则表达式：最多输入50个中文、英文、数字的字符，且不能包含英文标点和特殊符号
 *
 * @return no 合法， yes 非法
 */
+ (BOOL)isLegalInputString:(NSString*)inputString;

/**
 * 检测是否为空字符串,如果为空,则返回yes
 */
+(BOOL) isBlankString:(NSString *)string;

/**
 *  MD5字符串
 *
 *  @return 加密字符串
 */
- (NSString *)md5String;

/**
 *  计算文字所占大小
 *
 *  @param font 字体大小
 *  @param size 限制Size大小
 *
 *  @return 返回大小
 */
- (CGSize)sizeWithStringFont:(UIFont *)font constrainedToSize:(CGSize)size;
/**
 *  计算文字所占大小
 *
 *  @param font 字体大小
 *
 *  @return 返回大小
 */
- (CGSize)sizeWithStringFont:(UIFont *)font;

///普通字符串转换为十六进制的。
- (NSString *)hexStringFromString;

///将字符串做url编码
- (NSString *)URLEncodedString;

///时间处理
- (NSString *)created_at;
@end
